Okay, willkommen zurück zu Software Engineering und ich hoffe, dass wir auch heute wieder eine
schöne Vorlesung haben werden. Ich habe mir gedacht, vielleicht sollten wir mal mit einem
Beispiel anfangen, was gerade so in der Welt passiert. Ich meine, wir lesen hier Software
Engineering, schauen uns mit den ganzen Prozessen an, wie man im Arbeitsleben programmieren wird.
Aber eine Sache, auf die wir noch nicht so eingegangen sind, wir aber am Ende des Semesters
eingeben werden, ist, was gerade so in der Welt der Programmierer passiert. Ich bin mir ziemlich
sicher, dass Sie sowas schon gesehen haben. Ich wollte es nur noch mal zeigen, weil mit
maschinellen Lernen und Large Language Models wird sich auch das Programmieren in Zukunft
verändern. Ich denke, dass wir auch zum Ende des Semesters noch mal ein bisschen Zeit nehmen
sollten, um darüber nachzugehen, wie uns das auch in der täglichen Arbeit beeinflussen kann.
Ich habe hier ein Beispiel für meinen GitHub-Account. Die Quellen sind auch alle
Quellen offen, wenn sich jemand noch mal im Detail angucken wird. Weil wir tatsächlich mit
neuen Machine Learning Technologien, insbesondere Large Language Models, nicht nur in der Lage sind,
Texte zu generieren, sondern auch Programmcode. Das ist ziemlich gut. Das Beispiel, das ich hier
gerade zeige, habe ich über Weihnachten geschrieben, Größenordnung, fünf Stunden hat das Ganze
gedauert, und zwar tatsächlich einen Twitter-Bot zu schreiben. Ich habe noch nie die Python Twitter
API benutzt, ich habe noch nie die Python Google Translate API benutzt, aber die Idee war es quasi
einen automatisierten Account zu schreiben, der alles, was auf erlang.de über den Twitter-Account
kommt, automatisch übersetzt. Das hat sich als sehr, sehr einfach herausgestellt. Ich habe hier
einfach nur den Quellcode noch mal dabei. Was hier in den Kommentaren steht, ist der Prompt,
also die Anfrage an JetGPT, das ist noch die freie Version, die hier benutzt wurde, wie das
Ganze generiert wurde. Ich dachte, es ist einfach nett, sich das hier mal anzugucken,
also insbesondere für so Fingerübungen. Häufig hat man so Geschichten wie, man möchte, also zum
Beispiel auf Twitter muss ja alles 140 Zeichen lang sein, und die Übersetzung von einem 140
Zeichen langen Tweet ist ja nicht notwendigerweise auch 140 Zeichen lang, sondern manchmal länger.
Und dann macht man halt so Zeug, was das in mehrere Tweets aufteilt, und der ganze Code darunter
ist automatisch generiert, also der Python-Code hier, dieses ganze Stück Python-Code hier, ist
automatisch generiert aus der Anfrage. Write a Python-Function that converts a string into an
array of strings. Each string in the array is shorter than 180 characters containing complete
words from the original long string. Furthermore, the strings in the array are marked with an index
1 over n to n to n, where n is the length of the array. Also diese Anweisung bitte in n verschiedene
Untertweets zerlegen, so dass immer ganze Wörter drin sind, hat er komplett umgesetzt und letzten
Endes, was macht das? Es detektiert die ganzen Leerzeichen, also tut das Ganze in Wörter auftrennen
und fängt dann an mitzuzählen, bis die Grenze von 140 Zeichen erreicht wird und fügt dann immer
am Ende die Marke ein, der Wiefelte von Endtweets das ist. Tatsächlich habe ich ihn auch als
händisch korrigiert, er hat die Marke nicht am Ende, sondern am Anfang eingefügt. Das war der
einzige Fehler, der in dem Code drin war. Und die restlichen Sachen programmiertechnisch ging es
extrem schnell, auch Google Translate, API ansteuern usw., hatte ich noch nie gemacht,
wirklich kein Problem. Die Hälfte der Zeit habe ich gebraucht, um Accounts bei Google und bei
Twitter anzulegen, um die entsprechenden API Keys zu bekommen. Das war die Hälfte der Zeit,
die ich nur auf den Webseiten verbracht habe, um herauszufinden, wie ich jetzt quasi an die
Programmierinterfaces komme und dort auch entsprechend das durchsetzen kann. Also Wahnsinn,
was sich in der Softwareentwicklung tut und ich denke, das ist auch etwas, was wir vielleicht im
Hinterkopf haben könnten, wenn wir über Systemarchitekturen reden und Kommunikation
usw., wenn wir z.B. vier Augen Programmierprinzipien usw. haben, dass beispielsweise auch ein
automatisiertes System dabei helfen kann, besseren Code zu bauen. Also insbesondere, wir hatten ja
in der letzten Vorlesung den Vorstieg des Test Cases von externen entwickelt werden sollten,
weil die sich enger an die Spezifikation halten und nicht durch irgendwelche Vorgaben,
die sich der Programmierer selber gemacht hat, beeinflusst werden. Das könnte z.B. auch von der
KI kommen. Oder auch Dokumentation ist extrem wichtig. Dokumentation kann natürlich hier aus
Presenters
Zugänglich über
Offener Zugang
Dauer
01:29:52 Min
Aufnahmedatum
2023-11-16
Hochgeladen am
2023-11-16 22:09:05
Sprache
de-DE